package trabalhoprog3;
import java.util.ArrayList;
import java.util.Scanner;
import static trabalhoprog3.TrabalhoProg3.atualizarPrecoDoItem;
import static trabalhoprog3.TrabalhoProg3.cadastrarFornecedorViaTeclado;
import static trabalhoprog3.TrabalhoProg3.cadastrarItemViaTeclado;
import static trabalhoprog3.TrabalhoProg3.listaDeFornecedores;
import static trabalhoprog3.TrabalhoProg3.retornarDataAtual;
import static trabalhoprog3.TrabalhoProg3.retornarItemPorCodigo;

public class Compra {
    ArrayList<Item> listaDeItensComprados = new ArrayList<Item>();
    int quantidadeDeItensComprados = 0;
    Fornecedor fornecedorDaCompra = new Fornecedor();
    Instante entrada = retornarDataAtual();
    
    protected Fornecedor escolherFornecedor(Fornecedor fornecedor){
        Scanner leitor = new Scanner(System.in);
        
        System.out.print("Digite o código do fornecedor:   ");
        fornecedorDaCompra.codigo = leitor.nextInt();
        
        if(retornarItemPorCodigo(fornecedorDaCompra.codigo) == null){
            System.out.print("\nEste fornecedor não está cadastrado no sistema. Faremos o cadastro dele\n\n\n");
            cadastrarFornecedorViaTeclado();
        }
        
        return listaDeFornecedores.get(listaDeFornecedores.indexOf(fornecedorDaCompra.codigo));
    }
    
    protected int numeroDeUnidades(){
        Scanner leitor = new Scanner(System.in);
        
        System.out.print("Digite a numero de unidades do item a serem compradas:   ");
        return leitor.nextInt();
    }
    
    protected Item escolherItem(){
        Scanner leitor = new Scanner(System.in);
        int codigoDoItem;
        int quantidade;
        Item item;
        
        System.out.print("Digite o código do Item:   ");
        codigoDoItem = leitor.nextInt();
        
        if(retornarItemPorCodigo(codigoDoItem) == null){
            System.out.print("\nEste Ítem não está cadastrado no sistema. Faremos o cadastro dele\n\n\n");
            cadastrarItemViaTeclado();
        }
        quantidade = numeroDeUnidades();
        
        item = retornarItemPorCodigo(codigoDoItem);
        item.precoDeCusto = item.inserirPrecoDeCusto(item.precoDeCusto);
        item.margemDeLucro = item.configurarMargemDeLucro(item.precoDeCusto,item.precoDeVenda);
        item.quantidadeTotalEmEstoque += quantidade;
        item.quantidadeDisponivel += quantidade;
        atualizarPrecoDoItem(item.nome); //usa o preço médio ponderado para cada item
        return item;
    }
}